package br.ucb.cesbdao.beans;

import java.util.ArrayList;

import javax.swing.JLabel;

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import br.ucb.cesbdao.interfaces.CodigoUnico;
import br.ucb.cesbdao.servicos.Servicos;

@SuppressWarnings("rawtypes")
@NoArgsConstructor
public class Trabalhador extends Pessoa implements Comparable,CodigoUnico{
	@Getter @Setter
	private Integer id,idSocio;
	@Getter @Setter
	private String cpf,dataNascimento,telefone, email,endereco,tipo,acesso;

	public Trabalhador(Integer id,String nome, Character sexo, Character status,Integer idSocio, String cpf, 
			String dataNascimento,String telefone, String email, String endereco,String tipo,String acesso) {
		super(nome, sexo, status);
		setId(id);
		setIdSocio(idSocio);
		setCpf(cpf);
		setDataNascimento(dataNascimento);
		setTelefone(telefone);
		setEmail(email);
		setEndereco(endereco);
		setTipo(tipo);
		setAcesso(acesso);
	}
	public Trabalhador(Integer id,String nome, Character sexo, Character status,Integer idSocio, String cpf, 
			String dataNascimento,String telefone, String email, String endereco,String tipo) {
		super(nome, sexo, status);
		setId(id);
		setIdSocio(idSocio);
		setCpf(cpf);
		setDataNascimento(dataNascimento);
		setTelefone(telefone);
		setEmail(email);
		setEndereco(endereco);
		setTipo(tipo);
	}

	public Trabalhador(String nome, Character sexo, Character status,Integer idSocio, String cpf, 
			String dataNascimento,String telefone, String email, String endereco,String tipo,String acesso) {
		super(nome, sexo, status);
		setIdSocio(idSocio);
		setCpf(cpf);
		setDataNascimento(dataNascimento);
		setTelefone(telefone);
		setEmail(email);
		setEndereco(endereco);
		setTipo(tipo);
		setAcesso(acesso);
	}

	public Trabalhador(int id,String nome) {
		super(nome);
		setId(id);
	}
	
	public Trabalhador(Integer id,String nome, Character sexo,Integer idSocio,String dataNascimento,String telefone, String email, String endereco,Character status) {
		super(nome, sexo, status);
		setId(id);
		setIdSocio(idSocio);
		setDataNascimento(dataNascimento);
		setTelefone(telefone);
		setEmail(email);
		setEndereco(endereco);
	}

	public  boolean validaCPFUnico(String msgErro, String cpf, int id, JLabel campoErro,ArrayList<Trabalhador> atendentes){
		for (Trabalhador atendente :atendentes ){
			if(!Servicos.unFormat(cpf).isEmpty()){
				if(cpf.equals(atendente.getCpf()) && (atendente.id != id)){
					campoErro.setText(msgErro);
					return false;
				}
			}
		}
		campoErro.setText("");
		return true;
	}

	public  boolean validaCPFUnico(String msgErro, String cpf, JLabel campoErro,ArrayList<Trabalhador> pessoas){
		for (Trabalhador atendente :pessoas ){
			if(!Servicos.unFormat(cpf).isEmpty()){
				if(cpf.equals(atendente.getCpf())){
					campoErro.setText(msgErro);
					return false;
				}
			}
		}
		campoErro.setText("");
		return true;
	}

	public  boolean validaCPFUnico(String cpf, ArrayList<Trabalhador> atendentes){
		for (Trabalhador atendente: atendentes ){
			if(!Servicos.unFormat(cpf).isEmpty()){
				if(cpf.equals(atendente.getCpf()))
					return false;
			}
		}
		return true;
	}

	public  boolean  validaCPFUnico(String msgErro,ArrayList<Trabalhador> atendentes, int  indexPaciente, int indexTrabalhador, JLabel campoErro){
		if(!Servicos.unFormat(atendentes.get(indexPaciente).getCpf()).isEmpty()){
			if(atendentes.get(indexPaciente).getCpf().equals(atendentes.get(indexTrabalhador).getCpf())){
				campoErro.setText(msgErro);
				return false;
			}
		}
		campoErro.setText("");
		return true;
	}

	@Override
	public String toString() {
		return "Trabalhador [id=" + id + ", idSocio=" + idSocio + ", cpf=" + cpf
				+ ", dataNascimento=" + dataNascimento + ", telefone="
				+ telefone + ", email=" + email + ", endereco=" + endereco
				+ ", tipo=" + tipo + ", acesso=" + acesso + "]";
	}
	

}
